package StudentAndManagerTest;
import java.util.Arrays;

public class Manager {
    private Students[] stus={};
//增加学生的方法
    public void addStudent(Students stu){
        stus= Arrays.copyOf(stus,stus.length+1);
        stus[stus.length-1]=stu;
    }
//删除学生的方法
    public void deleteStudent(int index){
        if(index<0||index>=stus.length){
            System.out.println("输入的下标有误");
            return;
        }
        for(int i=index;i<stus.length-1;i++){
            stus[i]=stus[i+1];
        }
        stus=Arrays.copyOf(stus,stus.length-1);
    }
    public void showStudent(StudentSorter sorter){
        sorter.sort(stus);
        for(Students stu:stus){
            System.out.println(stu);
        }
    }
//内部类用来封装一个排序学生的方法
    static class StudentSorter{
        private int order;//0-降序，1-升序
        public StudentSorter(){//无参构造，表示降序this(0);
        }
        public StudentSorter(int order){
            this.order=order;
        }
        public void sort(Students[] stus) {
            for(int i=0;i<stus.length;i++){
                for(int j=0;j<stus.length-1-i;j++){
                    if((order==1&&stus[j].getAge()>stus[j+1].getAge())||(order==0&&stus[j].getAge()<stus[j+1].getAge()))
                    {
                        Students temp=stus[j];
                        stus[j]=stus[j+1];
                        stus[j+1]=temp;
                    }
                }
            }
        }

    }
}
